package main

import (
	"e_mall_server/config"
	"e_mall_server/dao/mysql"
	"e_mall_server/dao/redis"
	"e_mall_server/logger"
	"e_mall_server/router"
	"fmt"
	"go.uber.org/zap"
)

func main() {

	// 1.加载配置文件
	if err := config.Init(); err != nil {
		fmt.Printf("settings初始化配置文件失败了：%v", err)
	}

	// 2.初始化日志
	if err := logger.Init(config.Conf.LogConfig, config.Conf.Mode); err != nil {
		fmt.Printf("logger初始化配置文件失败了：%v", err)
	}
	defer zap.L().Sync()
	// 3.初始化MySQL
	if err := mysql.Init(config.Conf.MySQLConfig); err != nil {
		fmt.Printf("mysql初始化配置文件失败了：%v", err)
	}

	// 4.初始化Redis连接
	if err := redis.Init(config.Conf.RedisConfig); err != nil {
		fmt.Printf("redis初始化配置文件失败了：%v", err)
	}
	defer redis.Close()

	// 5.注册路由
	r := router.SetupRouter(config.Conf.Mode)
	err := r.Run(fmt.Sprintf(":%d", config.Conf.Port))
	if err != nil {
		fmt.Printf("run server failed, err:%v\n", err)
		return
	}

}
